Cloud computing services provide a way for multiple people at multiple locations to collaborate on the same document. The cloud computing service stores a master copy of documents on one or more data servers and users access the documents over a remote network, such as the Internet. Documents that may be created, stored, and edited on a cloud computing service include word processing documents, presentation documents, and spreadsheets. When a user accesses a document stored on the cloud computing service, a local copy of the document is loaded on the client computer. Changes to the document made by the user are communicated to the cloud computing server for recordation. If two or more collaborators are editing the same document at the same time, changes made by one user are quickly propagated to the other users as well.
Collaborative spreadsheets accessible on cloud computing services may have many of the same functions as spreadsheets available on stand-alone computers. Available functions may include the use of filters to alter how data is arranged and displayed. For example, filters may be used to order rows or columns of data in a certain fashion and may be used to hide certain rows or columns from view. A filter may be considered an edit, or mutation, to the sheet just as other mutations, such as cell entries, and row/column insertions or deletions. When a user editing a collaborative spreadsheet applies a filter to the spreadsheet, the filter is also sent to other collaborators and applied to their copy of the spreadsheet. Thus a collaborator's view of the spreadsheet will automatically change when the user applies a filter. This may be a hindrance to other collaborators who are viewing data that is affected by the filter. In addition, if two or more collaborators want to apply different filters that affect overlapping sets of data, there is no way for both collaborators to apply the desired filters without interfering with each other. Also, there is no way for the collaborators of the spreadsheet to store multiple filters and apply the filters independently of each other.